MODULE Hello;        
  TYPE INT=INTEGER;
  TYPE MY_ARR=ARRAY 10 OF INT;
  TYPE MY_PROC=PROCEDURE (X:INT); 
  VAR W: INT;
  VAR X: INT;
  VAR Y: INT;  
  VAR Z: INT;
(*  CONST C=-5>=2.0E0; *)
  
  
BEGIN
	W:=10;
	X:=9;
	Y:=0;
	Z:=0;
	IF(X>W) THEN W:=W+3 ELSE W:=W-3 END;
	WHILE(X>0) DO Y:=Y+1; X:=X-1; END;
	X:=9;
	REPEAT X:=X-1; Z:=Z-1; UNTIL (X>0); 
END Hello.

(*
java.lang.ClassCastException: ru.msu.cmc.sp.oberon2.Symbol cannot be cast to ru.msu.cmc.sp.oberon2.Type
	at ru.msu.cmc.sp.oberon2.Inter_scope.typeElement(Inter_scope.java:1491)
	at ru.msu.cmc.sp.oberon2.Inter_scope.type(Inter_scope.java:1384)
	at ru.msu.cmc.sp.oberon2.Inter_scope.typeDeclaration(Inter_scope.java:907)
	at ru.msu.cmc.sp.oberon2.Inter_scope.topdown(Inter_scope.java:304)
	at ru.msu.cmc.sp.oberon2.Inter_scope.topdown(Inter_scope.java:1)
	at org.antlr.runtime.tree.TreeRewriter$2.rule(TreeRewriter.java:108)
	at org.antlr.runtime.tree.TreeRewriter.applyOnce(TreeRewriter.java:61)
	at org.antlr.runtime.tree.TreeRewriter$1.pre(TreeRewriter.java:92)
	at org.antlr.runtime.tree.TreeVisitor.visit(TreeVisitor.java:56)
	at org.antlr.runtime.tree.TreeVisitor.visit(TreeVisitor.java:60)
	at org.antlr.runtime.tree.TreeVisitor.visit(TreeVisitor.java:60)
	at org.antlr.runtime.tree.TreeRewriter.downup(TreeRewriter.java:95)
	at org.antlr.runtime.tree.TreeRewriter.downup(TreeRewriter.java:86)
	at ru.msu.cmc.sp.oberon2.Oberon2.analysis(Oberon2.java:25)
	at ru.msu.cmc.sp.oberon2.Oberon2.main(Oberon2.java:47)
*)